home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_200 / 242_01 / test51.asm < prev    next >
Assembly Source File  |  1989-01-11  |  4KB  |  368 lines

  1. ;
  2. ; Test file with all of the Intel 8051's opcodes in numerical order.....
  3. ;
  4.  
  5. DIR    EQU    78H
  6. IMM    EQU    9AH
  7.  
  8. BIT    BIT    PSW.7
  9. BIT1    BIT    CY
  10. BIT2    BIT    PSW + 7
  11.  
  12. ;
  13. ; 000H - 000FH
  14. ;
  15.     NOP
  16.     AJMP    0012H
  17.     LJMP    3456H
  18.     RR    A
  19.     INC    A
  20.     INC    DIR
  21.     INC    @R0
  22.     INC    @R1
  23.     INC    R0
  24.     INC    R1
  25.     INC    R2
  26.     INC    R3
  27.     INC    R4
  28.     INC    R5
  29.     INC    R6
  30.     INC    R7
  31.  
  32. ;
  33. ; 010H - 01FH
  34. ;
  35.     JBC    BIT, $
  36.     ACALL    0012H
  37.     LCALL    3456H
  38.     RRC    A
  39.     DEC    A
  40.     DEC    DIR
  41.     DEC    @R0
  42.     DEC    @R1
  43.     DEC    R0
  44.     DEC    R1
  45.     DEC    R2
  46.     DEC    R3
  47.     DEC    R4
  48.     DEC    R5
  49.     DEC    R6
  50.     DEC    R7
  51.  
  52. ;
  53. ; 020H - 02FH
  54. ;
  55.     JB    BIT, $
  56.     AJMP    0112H
  57.     RET
  58.     RL    A
  59.     ADD    A, #IMM
  60.     ADD    A, DIR
  61.     ADD    A, @R0
  62.     ADD    A, @R1
  63.     ADD    A, R0
  64.     ADD    A, R1
  65.     ADD    A, R2
  66.     ADD    A, R3
  67.     ADD    A, R4
  68.     ADD    A, R5
  69.     ADD    A, R6
  70.     ADD    A, R7
  71.  
  72. ;
  73. ; 030H - 03FH
  74. ;
  75.     JNB    BIT, $
  76.     ACALL    0112H
  77.     RETI
  78.     RLC    A
  79.     ADDC    A, #IMM
  80.     ADDC    A, DIR
  81.     ADDC    A, @R0
  82.     ADDC    A, @R1
  83.     ADDC    A, R0
  84.     ADDC    A, R1
  85.     ADDC    A, R2
  86.     ADDC    A, R3
  87.     ADDC    A, R4
  88.     ADDC    A, R5
  89.     ADDC    A, R6
  90.     ADDC    A, R7
  91.  
  92. ;
  93. ; 040H - 04FH
  94. ;
  95.     JC    $
  96.     AJMP    0212H
  97.     ORL    DIR, A
  98.     ORL    DIR, #IMM
  99.     ORL    A, #IMM
  100.     ORL    A, DIR
  101.     ORL    A, @R0
  102.     ORL    A, @R1
  103.     ORL    A, R0
  104.     ORL    A, R1
  105.     ORL    A, R2
  106.     ORL    A, R3
  107.     ORL    A, R4
  108.     ORL    A, R5
  109.     ORL    A, R6
  110.     ORL    A, R7
  111.  
  112. ;
  113. ; 050H - 05FH
  114. ;
  115.     JNC    $
  116.     ACALL    0212H
  117.     ANL    DIR, A
  118.     ANL    DIR, #IMM
  119.     ANL    A, #IMM
  120.     ANL    A, DIR
  121.     ANL    A, @R0
  122.     ANL    A, @R1
  123.     ANL    A, R0
  124.     ANL    A, R1
  125.     ANL    A, R2
  126.     ANL    A, R3
  127.     ANL    A, R4
  128.     ANL    A, R5
  129.     ANL    A, R6
  130.     ANL    A, R7
  131.  
  132. ;
  133. ; 060H - 06FH
  134. ;
  135.     JZ    $
  136.     AJMP    0312H
  137.     XRL    DIR, A
  138.     XRL    DIR, #IMM
  139.     XRL    A, #IMM
  140.     XRL    A, DIR
  141.     XRL    A, @R0
  142.     XRL    A, @R1
  143.     XRL    A, R0
  144.     XRL    A, R1
  145.     XRL    A, R2
  146.     XRL    A, R3
  147.     XRL    A, R4
  148.     XRL    A, R5
  149.     XRL    A, R6
  150.     XRL    A, R7
  151.  
  152. ;
  153. ; 070H - 07FH
  154. ;
  155.     JNZ    $
  156.     ACALL    0312H
  157.     ORL    C, BIT
  158.     JMP    @A + DPTR
  159.     MOV    A, #IMM
  160.     MOV    DIR, #IMM
  161.     MOV    @R0, #IMM
  162.     MOV    @R1, #IMM
  163.     MOV    R0, #IMM
  164.     MOV    R1, #IMM
  165.     MOV    R2, #IMM
  166.     MOV    R3, #IMM
  167.     MOV    R4, #IMM
  168.     MOV    R5, #IMM
  169.     MOV    R6, #IMM
  170.     MOV    R7, #IMM
  171.  
  172. ;
  173. ; 080H - 08FH
  174. ;
  175.     SJMP    $
  176.     AJMP    0412H
  177.     ANL    C, BIT
  178.     MOVC    A, @A + PC
  179.     DIV    AB
  180.     MOV    DIR, DIR
  181.     MOV    DIR, @R0
  182.     MOV    DIR, @R1
  183.     MOV    DIR, R0
  184.     MOV    DIR, R1
  185.     MOV    DIR, R2
  186.     MOV    DIR, R3
  187.     MOV    DIR, R4
  188.     MOV    DIR, R5
  189.     MOV    DIR, R6
  190.     MOV    DIR, R7
  191.  
  192. ;
  193. ; 090H - 09FH
  194. ;
  195.     MOV    DPTR, #3456H
  196.     ACALL    0412H
  197.     MOV    BIT, C
  198.     MOVC    A, @A + DPTR
  199.     SUBB     A, #IMM
  200.     SUBB    A, DIR
  201.     SUBB    A, @R0
  202.     SUBB    A, @R1
  203.     SUBB    A, R0
  204.     SUBB    A, R1
  205.     SUBB    A, R2
  206.     SUBB    A, R3
  207.     SUBB    A, R4
  208.     SUBB    A, R5
  209.     SUBB    A, R6
  210.     SUBB    A, R7
  211.  
  212. ;
  213. ; 0A0H - 0AFH
  214. ;
  215.     ORL    C, /BIT
  216.     AJMP    0512H
  217.     MOV    C, BIT
  218.     INC    DPTR
  219.     MUL    AB
  220.                 ; 0A5H IS UNUSED.
  221.     MOV    @R0, DIR
  222.     MOV    @R1, DIR
  223.     MOV    R0, DIR
  224.     MOV    R1, DIR
  225.     MOV    R2, DIR
  226.     MOV    R3, DIR
  227.     MOV    R4, DIR
  228.     MOV    R5, DIR
  229.     MOV    R6, DIR
  230.     MOV    R7, DIR
  231.  
  232. ;
  233. ; 0B0H - 0BFH
  234. ;
  235.     ANL    C, /BIT
  236.     ACALL    0512H
  237.     CPL    BIT
  238.     CPL    C
  239.     CJNE    A, #IMM, $
  240.     CJNE    A, DIR, $
  241.     CJNE    @R0, #IMM, $
  242.     CJNE    @R1, #IMM, $
  243.     CJNE    R0, #IMM, $
  244.     CJNE    R1, #IMM, $
  245.     CJNE    R2, #IMM, $
  246.     CJNE    R3, #IMM, $
  247.     CJNE    R4, #IMM, $
  248.     CJNE    R5, #IMM, $
  249.     CJNE    R6, #IMM, $
  250.     CJNE    R7, #IMM, $
  251.  
  252. ;
  253. ; 0C0H - 0CFH
  254. ;
  255.     PUSH    DIR
  256.     AJMP    0612H
  257.     CLR    BIT
  258.     CLR    C
  259.     SWAP    A
  260.     XCH    A, DIR
  261.     XCH    A, @R0
  262.     XCH    A, @R1
  263.     XCH    A, R0
  264.     XCH    A, R1
  265.     XCH    A, R2
  266.     XCH    A, R3
  267.     XCH    A, R4
  268.     XCH    A, R5
  269.     XCH    A, R6
  270.     XCH    A, R7
  271.  
  272. ;
  273. ; 0D0H - 0DFH
  274. ;
  275.     POP    DIR
  276.     ACALL    0612H
  277.     SETB    BIT
  278.     SETB    C
  279.     DA    A
  280.     DJNZ    DIR, $
  281.     XCHD    A, @R0
  282.     XCHD    A, @R1
  283.     DJNZ    R0, $
  284.     DJNZ    R1, $
  285.     DJNZ    R2, $
  286.     DJNZ    R3, $
  287.     DJNZ    R4, $
  288.     DJNZ    R5, $
  289.     DJNZ    R6, $
  290.     DJNZ    R7, $
  291.  
  292. ;
  293. ; 0E0H - 0EFH
  294. ;
  295.     MOVX    A, @DPTR
  296.     AJMP    0712H
  297.     MOVX    A, @R0
  298.     MOVX    A, @R1
  299.     CLR    A
  300.     MOV    A, DIR
  301.     MOV    A, @R0
  302.     MOV    A, @R1
  303.     MOV    A, R0
  304.     MOV    A, R1
  305.     MOV    A, R2
  306.     MOV    A, R3
  307.     MOV    A, R4
  308.     MOV    A, R5
  309.     MOV    A, R6
  310.     MOV    A, R7
  311.  
  312. ;
  313. ; 0F0H - 0FFH
  314. ;
  315.     MOVX    @DPTR, A
  316.     ACALL    0712H
  317.     MOVX    @R0, A
  318.     MOVX    @R1, A
  319.     CPL    A
  320.     MOV    DIR, A
  321.     MOV    @R0, A
  322.     MOV    @R1, A
  323.     MOV    R0, A
  324.     MOV    R1, A
  325.     MOV    R2, A
  326.     MOV    R3, A
  327.     MOV    R4, A
  328.     MOV    R5, A
  329.     MOV    R6, A
  330.     MOV    R7, A
  331.  
  332. ;
  333. ; Now horse around with some bit operations.
  334. ;
  335. BYTE    EQU    021H
  336. BITNO    BIT    BYTE + 1.2
  337.  
  338.     MOV    C, BYTE + 1.2
  339.     MOV    C, BITNO
  340.     MOV    C, ((BYTE - 20H) SHL 3) + 2
  341.  
  342.     MOV    BYTE + 1.2, C
  343.     MOV    BITNO, C
  344.     MOV    ((BYTE - 20H) SHL 3) + 2, C
  345.  
  346.     ORL    C, BYTE + 1.2
  347.     ORL    C, BITNO
  348.     ORL    C, ((BYTE - 20H) SHL 3) + 2
  349.  
  350.     ORL    C, /BYTE + 1.2
  351.     ORL    C, /BITNO
  352.     ORL    C, /((BYTE - 20H) SHL 3) + 2
  353.  
  354.     CLR    BYTE + 1.2
  355.     CLR    BITNO
  356.     CLR    ((BYTE - 20H) SHL 3) + 2
  357.  
  358.     END
  359. D    A, @R0
  360.     XCHD    A, @R1
  361.     DJNZ    R0, $
  362.     DJNZ    R1, $
  363.     DJNZ    R2, $
  364.     DJNZ    R3, $
  365.     DJNZ    R4, $
  366.     DJNZ    R5, $
  367.     DJNZ    R6, $
  368.     DJNZ    R